<?php

/**
 * Winbinder 
 *
 * @package php.ui.winbinder 
 *
 */

/**
 * System Dialog 
 *
 *
 * @package php.ui.winbinder
 */
class WBDialog extends PObject { 

	/**
	 * 정보 메세지 
	 *
	 */
	const INFO			= WBC_INFO;

	/**
	 * 확인 메세지 
	 *
	 */
	const OK			= WBC_OK;

	/**
	 * 확인 취소 메세지 
	 *
	 *
	 */
	const OKCANCEL		= WBC_OKCANCEL;

	/**
	 * 질문 메세지 
	 *
	 */
	const QUESTION		= WBC_QUESTION;

	/**
	 * STOP 메세지 
	 *
	 */
	const STOP			= WBC_STOP;

	/**
	 * 경고 메세지 
	 *
	 */
	const WARNING		= WBC_WARNING;

	/**
	 * YES NO 버튼 있는 메세지 
	 *
	 */
	const YESNO			= WBC_YESNO;

	/**
	 * YES NO CANCEL 버튼 있는 메세지 
	 *
	 *
	 */
	const YESNOCANCEL	= WBC_YESNOCANCEL;

	/**
	 * 메세지 박스 
	 *
	 * Cancel, No, Ignore, Abort : false 
	 * OK, Yes, Retry  : true 
	 * others : null 
	 * 
	 * @param WBWindow $parent
	 * @param string $message 
	 * @param string $title
	 * @param int $style
	 * @return bool 
	 */
	public static function message($parent, $message , $title = '', $style = WBDialog::INFO) { 
		return wb_message_box(wbInstance($parent), $message, $title, $style);
	}

	/**
	 * 경고(Warning) 메세지 박스 
	 *
	 * @see WBDialog::message()
	 */
	public static function warning($parent, $message, $title = '') { 
		return WBDialog::message(wbInstance($parent), $message,  $title, WBDialog::WARNING);
	}

	/**
	 * OK, CANCEL 메세지 박스 
	 *
	 */
	public static function okcancel($parent,$message, $title = '') { 
		return WBDialog::message(wbInstance($parent), $message,  $title, WBDialog::OKCANCEL);
	}

	/**
	 * INFO 메세지 박스 
	 *
	 */
	public static function info($parent,$message, $title = '') { 
		return WBDialog::message(wbInstance($parent), $message,  $title, WBDialog::INFO);
	}

	/**
	 * QUESTION 메세지 박스 
	 * 
	 *
	 */
	public static function question($parent,$message, $title = '') { 
		return WBDialog::message(wbInstance($parent), $message,  $title, WBDialog::QUESTION);
	}

	/**
	 * STOP 메세지 박스 
	 *
	 *
	 */
	public static function stop($parent,$message, $title = '') { 
		return WBDialog::message(wbInstance($parent), $message,  $title, WBDialog::STOP);
	}

	/**
	 * YES, NO 메세지 박스 
	 *
	 *
	 */
	public static function yesno($parent,$message, $title = '') { 
		return WBDialog::message(wbInstance($parent), $message,  $title, WBDialog::YESNO);
	}

	/**
	 * YES, NO, CANCEL 메세지 박스 
	 *
	 *
	 */
	public static function yesnocancel($parent,$message, $title = '') {
		$value = WBDialog::message(wbInstance($parent), $message,  $title, WBDialog::YESNOCANCEL);

		if ($value === true) { 
			$return = 'yes';			
		} else if ($value === 0) { 
			$return = 'no';			
		} else { 
			$return = 'cancel';
		}
		
		return $return;
	}

	/**
	 * color picker 
	 *
	 * <code>
	 *	$color = sprintf("%06X", WBGdi::colorHex(WBDialog::color($eo->window(), '색깔 테스트', WBGdi::rgbHex(0xFF0000))));
	 * </code>
	 * 
	 * @return int  -1 이면 실패, 0 이상이면 색깔 표시 
	 */
	public static function color($parent = null, $title = '', $color = 0) { 
		return wb_sys_dlg_color(wbInstance($parent), $title, $color);
	}

	/**
	 * 파일 찾기 다이얼로그 
	 * 
	 * <code>
	 * $filter = array(
	 * 		array("PHP source code",    "*.php"),
	 *      array("Web page",           "*.htm"),
	 * 	    array("Text document",      "*.txt"),
	 *      array("All files",          "*.*")
	 * );
	 * </code>
	 *
	 * @return string 선택된 파일 전체 경로 
	 */
	public static function open($parent = null, $title = '', $filter = null, $path = '', $filename = '')  {
		return wb_sys_dlg_open(wbInstance($parent), $title, $filter, $path, $filename);
	}

	/**
	 * 경로 찾기 다이얼로그 
	 *
	 *
	 * @return string 선택된 디렉토리 경로 
	 */
	public static function path($parent = null, $title = '', $path = '') { 
		return wb_sys_dlg_path (wbInstance($parent), $title, $path);
	}


	/**
	 * 저장 경로 찾기 다이얼로그 
	 * 
	 * <code>
	 * $filter = array(
	 * 		array("PHP source code",    "*.php"),
	 *      array("Web page",           "*.htm"),
	 * 	    array("Text document",      "*.txt"),
	 *      array("All files",          "*.*")
	 * );
	 * </code>
	 *
	 * @return string 선택된 전체 경로 
	 */
	public static function save($parent = null, $title = '', $filter = null, $path = '', $filename = '', $ext = '')  {
		return wb_sys_dlg_save(wbInstance($parent), $title, $filter, $path, $filename, $ext);
	}
}

?>